package 春招冲刺百题计划;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2024-04-20
 * Time:15:45
 */

/**
 * 力扣面试经典150:73. 矩阵置零
 * 相关企业
 * 提示
 * 给定一个 m x n 的矩阵，如果一个元素为 0 ，则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
 * 示例 1：
 * 输入：matrix = [[1,1,1],[1,0,1],[1,1,1]]
 * 输出：[[1,0,1],[0,0,0],[1,0,1]]
 */
public class setZeroes {
    public static void main(String[] args) {
        setZeroes(new int[][]{{1,1,1},{1,0,1},{1,1,1}});
    }
    public static void setZeroes(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        boolean[] col = new boolean[n];
        for(int i = 0;i < m;i++){
            boolean flag = false;
            for(int j = 0;j < n;j++){
                if(matrix[i][j] == 0){
                    col[j] = true;
                    flag = true;
                }
            }
            if(flag){
                for(int k = 0;k < n;k++)matrix[i][k] = 0;
            }
        }
        for(int i = 0;i < n;i++){
            if (col[i]){
                for(int j = 0;j < m;j++)matrix[j][i] = 0;
            }
        }
    }
}
